To maintain good audio quality in a radiotelephone, the radio receiver must pass to the speech decoder an indication of the quality of the speech frame. This binary indication must allow for the following considerations: a non-traffic channel input (noise or control channel) is always detected as bad; a high signal-to-noise ratio (SNR) traffic channel input is always detected as good; and a large majority of correctable traffic channel frames are detected as good.
By meeting these criteria, a high degree of muting and speech extrapolation by the speech decoder can be avoided. Additionally, a receiver meeting these requirements will operate to specification in a system such as the global system for mobile communication (GSM), IS-136, or IDEN, or other digital communication systems. However, it is recognized that it is difficult to meet these criteria.
One advantageous method of monitoring the speech frame quality uses window error detection in association with a soft decision decoder. For example, the soft decision output of a Viterbi equalizer can be used to detect a bad frame. U.S. Pat. No. 5,229,767, entitled DECODER FOR CONVOLUTIONALLY ENCODED INFORMATION, issued to Winter et al. on Jul. 20, 1993, discloses a decoder which detects a bad frame using the soft information from a decoder to determine whether or not to discard a frame.
One method of improving the performance of a receiver, is to provide so-called "turbo decoding". A turbo decoder employs an iterative process which is repeated to provide improved decoding of a frame. A difficulty with these decoders is determining when to stop repeating the reiterative process. One technique that has been used to stop reiterative decoding is when the decoded values are no longer changing (i.e., when bits stop changing between a logic 1 and a logic 0). Another known method for determining when to stop the iterations of the turbo decoder uses a cyclical redundancy check (CRC). Bits are added to the frame to provide an error indication for turbo decoding. The reiterative process is finished when the error redundancy bits no longer indicate that there is an error. Yet another method uses a fixed number of repetitions (e.g., 10). Each of the above methods has a disadvantage. The use of turbo decoding CRC bits means that additional bits are added to the data frame for turbo decoding. This adds overhead to the data. The other two methods add overhead in the processing, in that many iterations are necessitated by the process itself.
Accordingly, there is need for improved decoding and error detection.